Multicast is the delivery of a message or information to a group of destination machines simultaneously in a single transmission from the source. Copies of the message are automatically replicated and forwarded by other network elements. Forwarding and replicating multicast packets are usually done by intermediate nodes in the network—switches fulfill multicast forwarding inside a layer 2 network while (multicast) routers fulfill multicast routing across layer 3 networks. Typically, switches that support multicast use IGMP (Internet Group Management Protocol) snooping, while routers that support multicast use PIM (Protocol Independent Multicast) as the routing protocol.
Numerous multicast applications have been developed and deployed, including financial software, video services, etc. A use case worth noting is overlay based network virtualization (layer 2 tunneling), referred to as VXLAN. VXLAN can support a large number of logical layer 2 networks over a physical IP network. It is based on MAC-over-UDP encapsulation, and requires an IP multicast group to be allocated for encapsulation of BUM (broadcast, unknown unicast, and multicast) traffic inside a logical network. As a result, a large number of multicast groups may be consumed, especially in a cloud environment in which each tenant may create a number of logical networks. These created logical networks and corresponding multicast groups may span across physical layer 3 networks, datacenters, and regions.
Unfortunately, use of IP multicast is limited by a lack of infrastructure to support it. Low end switches and routers usually do not support IGMP and PIM, and they usually do not support a large number of multicast groups. Moreover, even when the physical network hardware has the capabilities to support multicast, users generally eschew enabling multicast in datacenter networks due to the complexity in management and scalability of IP multicast. Enabling multicast across datacenters and provider networks is even more difficult.
What is needed is a network system for enabling a large number of multicast groups across physical networks that may include datacenters or provider networks. Such a network system should support network virtualization without relying on built-in multicast capabilities of the physical network, while nevertheless leverage the multicast capabilities offered by the physical network to achieve higher efficiency, even when multicast is not fully enabled in the physical network. Further, such a network system should minimize the amount of bandwidth used when transmitting multicast traffic between physical networks.